home *** CD-ROM | disk | FTP | other *** search
- /*
- test problems with asserting a nbp name
- Written in LightSpeedC
- by Aaron Wohl
- */
- #include <stdio.h>
- #include <AppleTalk.h>
- #define NIL 0L
- int printf(char *,...);
- static int last_os_error;
- static int my_socket;
- EntityName nbp_name_storage;
-
- #define ner(xxx,yyyy) {if((last_os_error=(xxx))!=noErr)fatal(yyyy);}
-
- /* handle an unexpected system call error */
- void fatal(char *);
- void fatal(str)
- char *str;
- {printf("system call %s failed with error %d\n",str,last_os_error);
- ExitToShell();
- }
-
- /* assert an nbp name for a port */
- void assert_nbp_name(char *,char *,char *);
- void assert_nbp_name(aname,atype,azone)
- char *aname;
- char *atype;
- char *azone;
- {ABRecHandle arec;
- nbpProto *apt;
- EntityName my_ent;
- /* setup the name to assert */
- BlockMove(aname,&my_ent.objStr,*aname);
- BlockMove(atype,&my_ent.typeStr,*atype);
- BlockMove(azone,&my_ent.zoneStr,*azone);
-
- arec= (ABRecHandle) NewHandle(sizeof(ABusRecord));
- HLock(arec); /* initilize the applebus record */
- apt = &(*arec)->nbpProto;
- apt->abUserReference= 23L; /* a random number for the user refrence */
- apt->nbpEntityPtr= &my_ent;
- apt->nbpBufPtr=(Ptr)&nbp_name_storage;
- apt->nbpBufSize=sizeof(nbp_name_storage);
- apt->nbpDataField=0; /* not used for register call */
- apt->nbpAddress.aSocket=my_socket;
- apt->nbpRetransmitInfo.retransInterval=80; /* every 640 for a long time */
- apt->nbpRetransmitInfo.retransCount=1;
- HUnlock(arec);
-
- /* register the name */
- printf("registering name\n");
- ner(NBPRegister(arec,FALSE),"NBPRegister");
- DisposHandle(arec);
- }
-
- void main(void);
- void main()
- {printf("opening mpp\n");
- ner(MPPOpen(),"MPPOpen"); /* appletalk and nbp started */
- printf("opening nbp\n");
- ner(NBPLoad(),"NBPLoad");
- my_socket=0; /* make up a socket */
- ner(DDPOpenSocket(&my_socket,NIL),"DDPOpenSocket");
- printf("opened socket %d\n",my_socket);
- assert_nbp_name("\ptest_prog","\pfrots_type","\p*");
- }
-